 /* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

kubernetes 集群
kubernetes 集群服务

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#import <Foundation/Foundation.h>
#import <JDCloudOCSDKKubernetes/KubernetesExecutor.h>

@implementation KubernetesClient

@synthesize userAgent = _userAgent;
@synthesize serviceName = _serviceName;
@synthesize version = _version;

-(void) addCustomerHeaderWithKey:(NSString*) key
                           value:(NSString*) value{
    if(![self customHeader])
    {
        self.customHeader = [[NSMutableDictionary alloc] init];
    }
    if(key && value)
    {
        [[self customHeader] setValue:value forKey:key];
    }
   
}

-(id)initWithGlobalConfig{
    if(![GlobalConfig credential])
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@"GlobalConfig credential not config" userInfo:nil];
        @throw e;
    }
    self.credential = [GlobalConfig credential];
    if(![GlobalConfig sdkEnvironment])
    {
        self.sdkEnvironment = [[SDKEnvironment alloc] initWithEndPoint:@"kubernetes.jdcloud-api.com"];
    }else
    {
        self.sdkEnvironment = [GlobalConfig sdkEnvironment];
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 kubernetes  v1";
    _serviceName = @"kubernetes";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)initWithCredential:(Credential*)credential
         sdkEnvironment:(SDKEnvironment*)sdkEnvironment
{
    if(!credential)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" credential can not null" userInfo:nil];
        @throw e;
    }else{
        self.credential = credential;
    }
    
    if(!sdkEnvironment)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" sdkEnvironment can not null" userInfo:nil];
        @throw e;
    }else{
        self.sdkEnvironment = sdkEnvironment;
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 kubernetes  v1";
    _serviceName = @"kubernetes";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)initWithCredential:(Credential*)credential
{
    if(!credential)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" credential can not null" userInfo:nil];
        @throw e;
    }else{
        self.credential = credential;
    }
    if(![GlobalConfig sdkEnvironment])
    {
        self.sdkEnvironment = [[SDKEnvironment alloc] initWithEndPoint:@"kubernetes.jdcloud-api.com"];
    }else
    {
        self.sdkEnvironment = [GlobalConfig sdkEnvironment];
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 kubernetes  v1";
    _serviceName = @"kubernetes";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)init{
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 kubernetes  v1";
    _serviceName = @"kubernetes";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}


/**
deleteNodeGroup sync request
@param deleteNodeGroupRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteNodeGroupResponse` the request response data model
*/
-(NSDictionary*) deleteNodeGroupSyncWithRequest:(KubernetesDeleteNodeGroupRequest*) deleteNodeGroupRequest
{
KubernetesDeleteNodeGroupExecutor* excutor = [[KubernetesDeleteNodeGroupExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteNodeGroupRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDeleteNodeGroupResponse* response = [[KubernetesDeleteNodeGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteNodeGroupResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteNodeGroupAsyncWithRequest:(KubernetesDeleteNodeGroupRequest*) deleteNodeGroupRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDeleteNodeGroupResponse* _Nullable deleteNodeGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDeleteNodeGroupExecutor* excutor = [[KubernetesDeleteNodeGroupExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteNodeGroupRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDeleteNodeGroupResponse* response = [[KubernetesDeleteNodeGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeNodeGroups sync request
@param describeNodeGroupsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeNodeGroupsResponse` the request response data model
*/
-(NSDictionary*) describeNodeGroupsSyncWithRequest:(KubernetesDescribeNodeGroupsRequest*) describeNodeGroupsRequest
{
KubernetesDescribeNodeGroupsExecutor* excutor = [[KubernetesDescribeNodeGroupsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeNodeGroupsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeNodeGroupsResponse* response = [[KubernetesDescribeNodeGroupsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeNodeGroupsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeNodeGroupsAsyncWithRequest:(KubernetesDescribeNodeGroupsRequest*) describeNodeGroupsRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeNodeGroupsResponse* _Nullable describeNodeGroupsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeNodeGroupsExecutor* excutor = [[KubernetesDescribeNodeGroupsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeNodeGroupsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeNodeGroupsResponse* response = [[KubernetesDescribeNodeGroupsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeUpgradableNodeVersions sync request
@param describeUpgradableNodeVersionsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeUpgradableNodeVersionsResponse` the request response data model
*/
-(NSDictionary*) describeUpgradableNodeVersionsSyncWithRequest:(KubernetesDescribeUpgradableNodeVersionsRequest*) describeUpgradableNodeVersionsRequest
{
KubernetesDescribeUpgradableNodeVersionsExecutor* excutor = [[KubernetesDescribeUpgradableNodeVersionsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeUpgradableNodeVersionsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeUpgradableNodeVersionsResponse* response = [[KubernetesDescribeUpgradableNodeVersionsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeUpgradableNodeVersionsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeUpgradableNodeVersionsAsyncWithRequest:(KubernetesDescribeUpgradableNodeVersionsRequest*) describeUpgradableNodeVersionsRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeUpgradableNodeVersionsResponse* _Nullable describeUpgradableNodeVersionsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeUpgradableNodeVersionsExecutor* excutor = [[KubernetesDescribeUpgradableNodeVersionsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeUpgradableNodeVersionsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeUpgradableNodeVersionsResponse* response = [[KubernetesDescribeUpgradableNodeVersionsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createNodeGroup sync request
@param createNodeGroupRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createNodeGroupResponse` the request response data model
*/
-(NSDictionary*) createNodeGroupSyncWithRequest:(KubernetesCreateNodeGroupRequest*) createNodeGroupRequest
{
KubernetesCreateNodeGroupExecutor* excutor = [[KubernetesCreateNodeGroupExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createNodeGroupRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesCreateNodeGroupResponse* response = [[KubernetesCreateNodeGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createNodeGroupResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createNodeGroupAsyncWithRequest:(KubernetesCreateNodeGroupRequest*) createNodeGroupRequest
                       completionHandler:(void(^)(int statusCode,KubernetesCreateNodeGroupResponse* _Nullable createNodeGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesCreateNodeGroupExecutor* excutor = [[KubernetesCreateNodeGroupExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createNodeGroupRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesCreateNodeGroupResponse* response = [[KubernetesCreateNodeGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
setAddons sync request
@param setAddonsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `setAddonsResponse` the request response data model
*/
-(NSDictionary*) setAddonsSyncWithRequest:(KubernetesSetAddonsRequest*) setAddonsRequest
{
KubernetesSetAddonsExecutor* excutor = [[KubernetesSetAddonsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:setAddonsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesSetAddonsResponse* response = [[KubernetesSetAddonsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"setAddonsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)setAddonsAsyncWithRequest:(KubernetesSetAddonsRequest*) setAddonsRequest
                       completionHandler:(void(^)(int statusCode,KubernetesSetAddonsResponse* _Nullable setAddonsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesSetAddonsExecutor* excutor = [[KubernetesSetAddonsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:setAddonsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesSetAddonsResponse* response = [[KubernetesSetAddonsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyNodeGroup sync request
@param modifyNodeGroupRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyNodeGroupResponse` the request response data model
*/
-(NSDictionary*) modifyNodeGroupSyncWithRequest:(KubernetesModifyNodeGroupRequest*) modifyNodeGroupRequest
{
KubernetesModifyNodeGroupExecutor* excutor = [[KubernetesModifyNodeGroupExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyNodeGroupRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesModifyNodeGroupResponse* response = [[KubernetesModifyNodeGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyNodeGroupResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyNodeGroupAsyncWithRequest:(KubernetesModifyNodeGroupRequest*) modifyNodeGroupRequest
                       completionHandler:(void(^)(int statusCode,KubernetesModifyNodeGroupResponse* _Nullable modifyNodeGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesModifyNodeGroupExecutor* excutor = [[KubernetesModifyNodeGroupExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyNodeGroupRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesModifyNodeGroupResponse* response = [[KubernetesModifyNodeGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteCluster sync request
@param deleteClusterRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteClusterResponse` the request response data model
*/
-(NSDictionary*) deleteClusterSyncWithRequest:(KubernetesDeleteClusterRequest*) deleteClusterRequest
{
KubernetesDeleteClusterExecutor* excutor = [[KubernetesDeleteClusterExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteClusterRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDeleteClusterResponse* response = [[KubernetesDeleteClusterResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteClusterResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteClusterAsyncWithRequest:(KubernetesDeleteClusterRequest*) deleteClusterRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDeleteClusterResponse* _Nullable deleteClusterResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDeleteClusterExecutor* excutor = [[KubernetesDeleteClusterExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteClusterRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDeleteClusterResponse* response = [[KubernetesDeleteClusterResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
setUserMetrics sync request
@param setUserMetricsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `setUserMetricsResponse` the request response data model
*/
-(NSDictionary*) setUserMetricsSyncWithRequest:(KubernetesSetUserMetricsRequest*) setUserMetricsRequest
{
KubernetesSetUserMetricsExecutor* excutor = [[KubernetesSetUserMetricsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:setUserMetricsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesSetUserMetricsResponse* response = [[KubernetesSetUserMetricsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"setUserMetricsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)setUserMetricsAsyncWithRequest:(KubernetesSetUserMetricsRequest*) setUserMetricsRequest
                       completionHandler:(void(^)(int statusCode,KubernetesSetUserMetricsResponse* _Nullable setUserMetricsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesSetUserMetricsExecutor* excutor = [[KubernetesSetUserMetricsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:setUserMetricsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesSetUserMetricsResponse* response = [[KubernetesSetUserMetricsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
setNodeGroupSize sync request
@param setNodeGroupSizeRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `setNodeGroupSizeResponse` the request response data model
*/
-(NSDictionary*) setNodeGroupSizeSyncWithRequest:(KubernetesSetNodeGroupSizeRequest*) setNodeGroupSizeRequest
{
KubernetesSetNodeGroupSizeExecutor* excutor = [[KubernetesSetNodeGroupSizeExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:setNodeGroupSizeRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesSetNodeGroupSizeResponse* response = [[KubernetesSetNodeGroupSizeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"setNodeGroupSizeResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)setNodeGroupSizeAsyncWithRequest:(KubernetesSetNodeGroupSizeRequest*) setNodeGroupSizeRequest
                       completionHandler:(void(^)(int statusCode,KubernetesSetNodeGroupSizeResponse* _Nullable setNodeGroupSizeResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesSetNodeGroupSizeExecutor* excutor = [[KubernetesSetNodeGroupSizeExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:setNodeGroupSizeRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesSetNodeGroupSizeResponse* response = [[KubernetesSetNodeGroupSizeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeServerConfig sync request
@param describeServerConfigRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeServerConfigResponse` the request response data model
*/
-(NSDictionary*) describeServerConfigSyncWithRequest:(KubernetesDescribeServerConfigRequest*) describeServerConfigRequest
{
KubernetesDescribeServerConfigExecutor* excutor = [[KubernetesDescribeServerConfigExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeServerConfigRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeServerConfigResponse* response = [[KubernetesDescribeServerConfigResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeServerConfigResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeServerConfigAsyncWithRequest:(KubernetesDescribeServerConfigRequest*) describeServerConfigRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeServerConfigResponse* _Nullable describeServerConfigResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeServerConfigExecutor* excutor = [[KubernetesDescribeServerConfigExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeServerConfigRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeServerConfigResponse* response = [[KubernetesDescribeServerConfigResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
upgradeCluster sync request
@param upgradeClusterRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `upgradeClusterResponse` the request response data model
*/
-(NSDictionary*) upgradeClusterSyncWithRequest:(KubernetesUpgradeClusterRequest*) upgradeClusterRequest
{
KubernetesUpgradeClusterExecutor* excutor = [[KubernetesUpgradeClusterExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:upgradeClusterRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesUpgradeClusterResponse* response = [[KubernetesUpgradeClusterResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"upgradeClusterResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)upgradeClusterAsyncWithRequest:(KubernetesUpgradeClusterRequest*) upgradeClusterRequest
                       completionHandler:(void(^)(int statusCode,KubernetesUpgradeClusterResponse* _Nullable upgradeClusterResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesUpgradeClusterExecutor* excutor = [[KubernetesUpgradeClusterExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:upgradeClusterRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesUpgradeClusterResponse* response = [[KubernetesUpgradeClusterResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeVersions sync request
@param describeVersionsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVersionsResponse` the request response data model
*/
-(NSDictionary*) describeVersionsSyncWithRequest:(KubernetesDescribeVersionsRequest*) describeVersionsRequest
{
KubernetesDescribeVersionsExecutor* excutor = [[KubernetesDescribeVersionsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeVersionsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeVersionsResponse* response = [[KubernetesDescribeVersionsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeVersionsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeVersionsAsyncWithRequest:(KubernetesDescribeVersionsRequest*) describeVersionsRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeVersionsResponse* _Nullable describeVersionsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeVersionsExecutor* excutor = [[KubernetesDescribeVersionsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeVersionsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeVersionsResponse* response = [[KubernetesDescribeVersionsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
setAutoRepair sync request
@param setAutoRepairRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `setAutoRepairResponse` the request response data model
*/
-(NSDictionary*) setAutoRepairSyncWithRequest:(KubernetesSetAutoRepairRequest*) setAutoRepairRequest
{
KubernetesSetAutoRepairExecutor* excutor = [[KubernetesSetAutoRepairExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:setAutoRepairRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesSetAutoRepairResponse* response = [[KubernetesSetAutoRepairResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"setAutoRepairResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)setAutoRepairAsyncWithRequest:(KubernetesSetAutoRepairRequest*) setAutoRepairRequest
                       completionHandler:(void(^)(int statusCode,KubernetesSetAutoRepairResponse* _Nullable setAutoRepairResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesSetAutoRepairExecutor* excutor = [[KubernetesSetAutoRepairExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:setAutoRepairRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesSetAutoRepairResponse* response = [[KubernetesSetAutoRepairResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeQuotas sync request
@param describeQuotasRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeQuotasResponse` the request response data model
*/
-(NSDictionary*) describeQuotasSyncWithRequest:(KubernetesDescribeQuotasRequest*) describeQuotasRequest
{
KubernetesDescribeQuotasExecutor* excutor = [[KubernetesDescribeQuotasExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeQuotasRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeQuotasResponse* response = [[KubernetesDescribeQuotasResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeQuotasResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeQuotasAsyncWithRequest:(KubernetesDescribeQuotasRequest*) describeQuotasRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeQuotasResponse* _Nullable describeQuotasResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeQuotasExecutor* excutor = [[KubernetesDescribeQuotasExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeQuotasRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeQuotasResponse* response = [[KubernetesDescribeQuotasResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeNodeGroup sync request
@param describeNodeGroupRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeNodeGroupResponse` the request response data model
*/
-(NSDictionary*) describeNodeGroupSyncWithRequest:(KubernetesDescribeNodeGroupRequest*) describeNodeGroupRequest
{
KubernetesDescribeNodeGroupExecutor* excutor = [[KubernetesDescribeNodeGroupExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeNodeGroupRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeNodeGroupResponse* response = [[KubernetesDescribeNodeGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeNodeGroupResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeNodeGroupAsyncWithRequest:(KubernetesDescribeNodeGroupRequest*) describeNodeGroupRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeNodeGroupResponse* _Nullable describeNodeGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeNodeGroupExecutor* excutor = [[KubernetesDescribeNodeGroupExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeNodeGroupRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeNodeGroupResponse* response = [[KubernetesDescribeNodeGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeProgress sync request
@param describeProgressRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeProgressResponse` the request response data model
*/
-(NSDictionary*) describeProgressSyncWithRequest:(KubernetesDescribeProgressRequest*) describeProgressRequest
{
KubernetesDescribeProgressExecutor* excutor = [[KubernetesDescribeProgressExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeProgressRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeProgressResponse* response = [[KubernetesDescribeProgressResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeProgressResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeProgressAsyncWithRequest:(KubernetesDescribeProgressRequest*) describeProgressRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeProgressResponse* _Nullable describeProgressResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeProgressExecutor* excutor = [[KubernetesDescribeProgressExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeProgressRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeProgressResponse* response = [[KubernetesDescribeProgressResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeNodeVersion sync request
@param describeNodeVersionRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeNodeVersionResponse` the request response data model
*/
-(NSDictionary*) describeNodeVersionSyncWithRequest:(KubernetesDescribeNodeVersionRequest*) describeNodeVersionRequest
{
KubernetesDescribeNodeVersionExecutor* excutor = [[KubernetesDescribeNodeVersionExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeNodeVersionRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeNodeVersionResponse* response = [[KubernetesDescribeNodeVersionResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeNodeVersionResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeNodeVersionAsyncWithRequest:(KubernetesDescribeNodeVersionRequest*) describeNodeVersionRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeNodeVersionResponse* _Nullable describeNodeVersionResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeNodeVersionExecutor* excutor = [[KubernetesDescribeNodeVersionExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeNodeVersionRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeNodeVersionResponse* response = [[KubernetesDescribeNodeVersionResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
rollbackNodeGroupUpgrade sync request
@param rollbackNodeGroupUpgradeRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `rollbackNodeGroupUpgradeResponse` the request response data model
*/
-(NSDictionary*) rollbackNodeGroupUpgradeSyncWithRequest:(KubernetesRollbackNodeGroupUpgradeRequest*) rollbackNodeGroupUpgradeRequest
{
KubernetesRollbackNodeGroupUpgradeExecutor* excutor = [[KubernetesRollbackNodeGroupUpgradeExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:rollbackNodeGroupUpgradeRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesRollbackNodeGroupUpgradeResponse* response = [[KubernetesRollbackNodeGroupUpgradeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"rollbackNodeGroupUpgradeResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)rollbackNodeGroupUpgradeAsyncWithRequest:(KubernetesRollbackNodeGroupUpgradeRequest*) rollbackNodeGroupUpgradeRequest
                       completionHandler:(void(^)(int statusCode,KubernetesRollbackNodeGroupUpgradeResponse* _Nullable rollbackNodeGroupUpgradeResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesRollbackNodeGroupUpgradeExecutor* excutor = [[KubernetesRollbackNodeGroupUpgradeExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:rollbackNodeGroupUpgradeRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesRollbackNodeGroupUpgradeResponse* response = [[KubernetesRollbackNodeGroupUpgradeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
abortUpgrade sync request
@param abortUpgradeRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `abortUpgradeResponse` the request response data model
*/
-(NSDictionary*) abortUpgradeSyncWithRequest:(KubernetesAbortUpgradeRequest*) abortUpgradeRequest
{
KubernetesAbortUpgradeExecutor* excutor = [[KubernetesAbortUpgradeExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:abortUpgradeRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesAbortUpgradeResponse* response = [[KubernetesAbortUpgradeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"abortUpgradeResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)abortUpgradeAsyncWithRequest:(KubernetesAbortUpgradeRequest*) abortUpgradeRequest
                       completionHandler:(void(^)(int statusCode,KubernetesAbortUpgradeResponse* _Nullable abortUpgradeResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesAbortUpgradeExecutor* excutor = [[KubernetesAbortUpgradeExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:abortUpgradeRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesAbortUpgradeResponse* response = [[KubernetesAbortUpgradeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeUpgradableMasterVersions sync request
@param describeUpgradableMasterVersionsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeUpgradableMasterVersionsResponse` the request response data model
*/
-(NSDictionary*) describeUpgradableMasterVersionsSyncWithRequest:(KubernetesDescribeUpgradableMasterVersionsRequest*) describeUpgradableMasterVersionsRequest
{
KubernetesDescribeUpgradableMasterVersionsExecutor* excutor = [[KubernetesDescribeUpgradableMasterVersionsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeUpgradableMasterVersionsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeUpgradableMasterVersionsResponse* response = [[KubernetesDescribeUpgradableMasterVersionsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeUpgradableMasterVersionsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeUpgradableMasterVersionsAsyncWithRequest:(KubernetesDescribeUpgradableMasterVersionsRequest*) describeUpgradableMasterVersionsRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeUpgradableMasterVersionsResponse* _Nullable describeUpgradableMasterVersionsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeUpgradableMasterVersionsExecutor* excutor = [[KubernetesDescribeUpgradableMasterVersionsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeUpgradableMasterVersionsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeUpgradableMasterVersionsResponse* response = [[KubernetesDescribeUpgradableMasterVersionsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
setAutoUpgrade sync request
@param setAutoUpgradeRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `setAutoUpgradeResponse` the request response data model
*/
-(NSDictionary*) setAutoUpgradeSyncWithRequest:(KubernetesSetAutoUpgradeRequest*) setAutoUpgradeRequest
{
KubernetesSetAutoUpgradeExecutor* excutor = [[KubernetesSetAutoUpgradeExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:setAutoUpgradeRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesSetAutoUpgradeResponse* response = [[KubernetesSetAutoUpgradeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"setAutoUpgradeResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)setAutoUpgradeAsyncWithRequest:(KubernetesSetAutoUpgradeRequest*) setAutoUpgradeRequest
                       completionHandler:(void(^)(int statusCode,KubernetesSetAutoUpgradeResponse* _Nullable setAutoUpgradeResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesSetAutoUpgradeExecutor* excutor = [[KubernetesSetAutoUpgradeExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:setAutoUpgradeRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesSetAutoUpgradeResponse* response = [[KubernetesSetAutoUpgradeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createCluster sync request
@param createClusterRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createClusterResponse` the request response data model
*/
-(NSDictionary*) createClusterSyncWithRequest:(KubernetesCreateClusterRequest*) createClusterRequest
{
KubernetesCreateClusterExecutor* excutor = [[KubernetesCreateClusterExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createClusterRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesCreateClusterResponse* response = [[KubernetesCreateClusterResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createClusterResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createClusterAsyncWithRequest:(KubernetesCreateClusterRequest*) createClusterRequest
                       completionHandler:(void(^)(int statusCode,KubernetesCreateClusterResponse* _Nullable createClusterResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesCreateClusterExecutor* excutor = [[KubernetesCreateClusterExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createClusterRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesCreateClusterResponse* response = [[KubernetesCreateClusterResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeCluster sync request
@param describeClusterRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeClusterResponse` the request response data model
*/
-(NSDictionary*) describeClusterSyncWithRequest:(KubernetesDescribeClusterRequest*) describeClusterRequest
{
KubernetesDescribeClusterExecutor* excutor = [[KubernetesDescribeClusterExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeClusterRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeClusterResponse* response = [[KubernetesDescribeClusterResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeClusterResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeClusterAsyncWithRequest:(KubernetesDescribeClusterRequest*) describeClusterRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeClusterResponse* _Nullable describeClusterResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeClusterExecutor* excutor = [[KubernetesDescribeClusterExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeClusterRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeClusterResponse* response = [[KubernetesDescribeClusterResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyCluster sync request
@param modifyClusterRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyClusterResponse` the request response data model
*/
-(NSDictionary*) modifyClusterSyncWithRequest:(KubernetesModifyClusterRequest*) modifyClusterRequest
{
KubernetesModifyClusterExecutor* excutor = [[KubernetesModifyClusterExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyClusterRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesModifyClusterResponse* response = [[KubernetesModifyClusterResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyClusterResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyClusterAsyncWithRequest:(KubernetesModifyClusterRequest*) modifyClusterRequest
                       completionHandler:(void(^)(int statusCode,KubernetesModifyClusterResponse* _Nullable modifyClusterResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesModifyClusterExecutor* excutor = [[KubernetesModifyClusterExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyClusterRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesModifyClusterResponse* response = [[KubernetesModifyClusterResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeClusters sync request
@param describeClustersRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeClustersResponse` the request response data model
*/
-(NSDictionary*) describeClustersSyncWithRequest:(KubernetesDescribeClustersRequest*) describeClustersRequest
{
KubernetesDescribeClustersExecutor* excutor = [[KubernetesDescribeClustersExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeClustersRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeClustersResponse* response = [[KubernetesDescribeClustersResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeClustersResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeClustersAsyncWithRequest:(KubernetesDescribeClustersRequest*) describeClustersRequest
                       completionHandler:(void(^)(int statusCode,KubernetesDescribeClustersResponse* _Nullable describeClustersResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
KubernetesDescribeClustersExecutor* excutor = [[KubernetesDescribeClustersExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeClustersRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    KubernetesDescribeClustersResponse* response = [[KubernetesDescribeClustersResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}


 /**
 kubernetes common sync request
 @param  jdcloudDataRequest request param
 @return key `statusCode` http request status code type is int
             `dataResult` the http request response data  type is NSData
             `requestError` the request error type is NSError
 */
 -(NSDictionary*) kubernetesCommonSyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                                   url:(NSString*) url
                                                method:(NSString*) method{
    CommonExecutor* excutor = [[CommonExecutor alloc] initWithJDCloudClient:self url:url method:method];
    NSDictionary* responseResult = [excutor executeDataSync:jdcloudDataRequest];
    return responseResult;
}

-(void)kubernetesCommonAsyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                         url:(NSString*) url
                                      method:(NSString*) method
                           completionHandler:(void(^)(int statusCode, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
     CommonExecutor* excutor = [[CommonExecutor alloc] initWithJDCloudClient:self url:url method:method];
    
    [excutor executeDataAsync:jdcloudDataRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        completionHandler(statusCode,responseData,error);
    }];
} 

@end
